Partiye biraz geç kaldım, ama işte benim fikrim.
Zaten var olan kod tabanını değiştirmek gibi bir şey içeren 3. olasılık ile gider. Bu, ikili dizini (gerçek oyun .exe ve derlemedeki ilişkili .dll dosyalarını) bir çıktı dizininde (örneğin bir post-build komut dosyasıyla) bir yere koyarsanız (ve kopyalarsanız) çalışır. Daha sonra, Visual Studio 2010 ve XNA Game Studio 4.0 hakkında konuştuğumuzu varsayacağım (Prosedür diğer sürümler için çok benzer, sadece bazı sayıları değiştirmeniz gerekiyor)
Yani, fikir: projenizin kök dizininde .sln çözümünün bulunduğu bir komut dosyası (.cmd) aşağıdaki adımlarla oluşturun:
"Visual Studio 2010 Komut İstemi" ni çağırın:
"C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC \ vcvarsall.bat" x86 çağırın
Bu komut dosyamızın XNA kitaplıklarını ve gerekli tüm araçları ve ikili dosyaları bulabilmesi içindir.
İçerik Projesi'nde (.contentproj) MSBuild görevini çağırın:
msbuild / property: XNAContentPipelineTargetPlatform = Windows / property: XNAContentPipelineTargetProfile = mygame.content / projectfile.contentproj dosyasına ulaşın
Özellikleri, belirtilen farklı platformlara / profillere göre değiştirebilirsiniz. Hatta bir seferde daha fazla platform için içerik oluşturmak için daha ileriye gidebilirsiniz (Windows Phone, Xbox 360 veya Windows). Profil şu olabilir: Erişim veya HiDef (http://msdn.microsoft.com/en-us/library/ff604995.aspx)
Çıktıyı yinelemeli olarak, ikili dosyaların + gerçek oyunun depoda depolandığı klasöre kopyalayın:
xcopy / d / y / i / e bin \ x86 \ Hata Ayıklama \ İçerik * .. \ game_output \ İçerik
Bayraklar hakkında ayrıntılı bilgi için, komut isteminde de çağırabilirsiniz: xcopy /?
. Önemli olanlar şunlardır: /d
yalnızca değiştirilmiş dosyaları kopyalamak - çok sayıda varlığınız olması durumunda, zaten var olan ve değiştirilmemiş olanları tekrar tekrar kopyalamamanız yararlıdır; /y
daha yeni bir sürümle güncellenebilmeleri için mevcut dosyaların üzerine otomatik olarak yazmak için. Ben kullandım xcopy
çünkü normal copy
, bildiğim kadarıyla özyinelemeli klasörleri kopyalayamaz - ve muhtemelen içeriği klasör ve alt klasörlerde yapılandırıyorsunuzdur. Ayrıca, normalden daha iyidir copy
(birçok farklı bayrak).
pause
Komut dosyasının kullanıcı girişini beklemesi için arayın . Bu, yapının iyi olup olmadığını ve herhangi bir hatayla karşılaşılmadığını kontrol etmek için yararlıdır.
Şimdi, içerik dosyalarını değiştiren sanatçıların (veya herhangi birinin) sadece .cmd komut dosyasını çift tıklatması gerekir ve yeni içerik oluşturulacak ve test edilen hazır nesnelerin bulunduğu çıkış dizinine kopyalanacaktır.
Bununla birlikte, David'in gönderisinin 1. noktasına geri dönmeniz gereken küçük bir sorun var: sanatçılar İçerik projesini dosya ekleyerek / kaldırarak / dolaşırken değiştirmek istiyorlarsa, Visual Studio'da proje (veya herkesin yapacağından şüphelendiğim proje dosyasını elle düzenleme). Dediğim gibi, bu küçük bir konudur, çünkü sadece depodaki yeni dosyaları işleyebilirler ve siz, kodlayıcı bunları işlemek için yapıldığında kodlayıcı onları İçerik Projesine dahil eder.
Bu fikir üzerine Shawn Hargreaveas, msbuild ve İçerik Projelerini komut satırından oluşturma hakkında bir şeyler yayınladı: http://blogs.msdn.com/b/shawnhar/archive/2006/11/07/build-it-ahead-of-time .aspx Onun çözümü yeni bir dosya oluşturmaktı, ama bence mevcut proje dosyasını doğrudan kullanmak daha kolay ve daha sürdürülebilir.
Not: Uzun yazı için özür dilerim xD