2014-05-02 33 views
-1

我出口依賴於一些本地圖像的項目模板,我想手動加載它們因爲如果我不加載它們,我得到異常。如何(正確)使用這個VisualStudio全局變量?

我想在Form.Designer.vb中使用全局變量$(ProjectDir),但似乎沒有被識別,我做錯了什麼?

Me.PictureBox1.Image = Image.FromFile("$(ProjectDir)\Resources\Clipboard.png") 

當我加載項目模板時,上面的字符串被讀爲字符串。

PS:另外我不知道全局變量是否指向解決方案的路徑在那裏我加載我的項目模板,或將指向哪裏IVE出口我的項目模板的路徑,當然...我需要第二件事。

請注意,我打上C#「導致全局變量的使用應該是相同的這個問題...

+2

你讀過的文章鏈接的只是標題到你提供了什麼? –

+0

@Hamlet Hakobyan我suppossed那些瓦爾能以這種方式被使用過,「原因例如$(rootnamespace)全局變量是鏈接,和$ rootnamespace $變量在每個文件自動生成...看來同樣,如果不是,那麼我錯了,這就是爲什麼我要求幫助。 – ElektroStudios

+0

考慮將標題/標籤編輯爲「我可以在C#代碼中使用MSBuild變量」......請注意,您的示例顯示的是許多「如何從C#中的資源文件夾加載文件」的副本。 –

回答

2

可能是你沒有正確地接近問題。第一個$(ProjectDir)是Visual Studio IDE用於獲取項目當前路徑的宏。如果你想通過代碼,那麼你可以這樣做:

string filePath = Path.Combine(Directory.GetParent(AppDomain.CurrentDomain.BaseDirectory).Parent.FullName, 
           "Resources\\Clipboard.png"); 

但更重要的是你有他們在資源。爲什麼不使用WinForm資源。您可以在資源添加圖像,這些資源可與構建,您可以通過如下代碼訪問它們:

PictureBox1.Image = Properties.Resources.Clipboard.png; 

參見:How to add images as resources to C# Windows Application

+0

+ 0:currentdirectory表示可能壞主意 - $(PROJECTDIR)接近ExecutingAssembly ... –

+0

@Habb感謝您的幫助,但你已經提及的資源是不確定的東西,你可以在這裏看到我的主要問題: http://stackoverflow.com/questions/23431702/how-to-properly-export-a-form-and-its-resources-such-as-images-as-an-item-te,當作爲項目模板導出時資源沒有導出,然後我手動複製了項目模板根目錄下的'Resources'文件夾,現在我搞亂了我的頭部以便能夠獲取已加載模板的根目錄以加載圖像...但沒辦法,我沒有辦法。 – ElektroStudios

+0

此外,當我在File.designer.vb使用「currentDirectory所」的方法它指向哪裏,我安裝程序的IDE VS(devenv.exe的)的目錄,我也試着與反思,但沒有運氣。 – ElektroStudios