3

我使用VS2008和.NET Compact Framework 3.5構建了一個可執行文件,目標是Windows Mobile 6 professional,但是每當我編譯該項目時, AssemblyInfo.cs文件被忽略。從.NET程序集(Compact Framework 3.5/VS2008)中缺少版本信息

我已經在其他項目中做過很多次,它的工作原理沒有問題,但由於某些原因,我不能讓AssemblyTitle/AssemblyProduct/AssemblyVersion屬性等顯示出來(我嘗試使用Windows資源管理器中查看它們,我能夠在我已經構建的任何其他程序集的細節選項卡中查看這些屬性 - 甚至是同一解決方案中的其他項目)。

有什麼建議嗎?

+0

更多信息:剛剛發現,如果我創建一個新的智能設備EXE項目針對Windows Mobile然後assemblyinfo被忽略,但如果我創建相同的項目針對Windows CE那麼程序集信息已經包括了!儘管如此,仍然不明智!似乎Windows Mobile EXE不能包含assemblyinfo! – 2009-12-30 18:16:47

回答

0

該信息正在查看本地版本信息,該信息在桌面上使用AssemblyFileVersionAttribute進行設置。 AssemblyFileVersionAttribute在CF中不受支持,因此設置版本信息的唯一方法是使用命令行編譯。有a workaround in this blog

+1

謝謝,但在同一解決方案的另一個項目中的另一個緊湊框架程序集所有的信息設置正確。我也對以前的項目使用了相同的技術,沒有任何問題。這只是一個似乎有問題的項目。這兩者之間的唯一區別是,一個是exe,另一個是dll(儘管其他exe項目已經正確包含了這些信息)。 – 2009-12-30 17:54:05

+0

回覆:馬丁的,在我的情況下,它似乎在我的項目中完全正常工作,並且符合我對DLL的預期,但對於EXE項目它根本不起作用。我使用VS2008,VB.NET也針對CFv3.5。 – eidylon 2010-07-19 16:56:11

0

我知道這是舊的,但有在這裏發表簡單的解決方案:
Version number in .NET Compact Framework application

你必須使用反射。 ()。GetName()。Version.Metal()。GetName()。Version.Minor System.Reflection.Assembly.GetExecutingAssembly()。GetName()。Version( )System.Reflection.Assembly.GetExecutingAssembly .Build System.Reflection.Assembly.GetExecutingAssembly()。GetName()。Version.Revision

0

in tag PlatformFamilyName;而是PocketPC,更改爲添加WindowsCE 在csproj