2013-08-01 44 views
1

我正在爲使用xml設置文件(例如,C:\ ssis \ mySettingsFile.xml)運行的應用程序創建SpecFlow測試。在一次測試中,我想將文件保存到磁盤,然後將該文件添加到我的項目資源並清理磁盤位置。然後,另一個測試將解壓資源到一個臨時目錄並從那裏使用它。使用C#向項目資源添加文件

我很清楚解壓部分,但有沒有一種方法可以編程方式將文件打包到項目資源中,而不是使用VS GUI手動將其添加到項目中並將其標記爲嵌入資源?

我知道這是錯的,但我的線沿線的一些思考:

string myPath = "C:\ssis\mySettingsFile.xml"; 
TestHelper.ResourceDirectory = "$\...\...\Project.Folder.Resources"; 
myResource = TestHelper.PackResource(myPath); 
myResource.IsEmbeddedResource = true; 

...其中PackResource方法將文件保存到項目資源。

在此先感謝!

回答

2

你可以創建一個資源文件夾並添加你的xml到它。 當您點擊項目的屬性時,會出現一個資源選項卡,您可以在其中看到您的文件。 要訪問該文件,可以使用ProjectNamespace.Properties.Resources.yourfilename。

+0

謝謝,但我需要在我的測試類中使用C#專門添加它,因爲它不存在於我想保存到測試運行後的任何狀態。我會嘗試添加一個我想要做的事情的例子。 –

+0

我發現[這個論壇帖子](http://stackoverflow.com/questions/6926378/how-do-i-replace-embedded-resources-in-a-net-assembly-programmatically),似乎做我的是什麼希望去做。然而,經過進一步的研究,它可能會違反我想要/需要的結果。由於將文件保存到我的資源中會在每次運行時改變測試的狀態,因此基本上使測試無效。 爲了保持無菌的測試環境,我將刪除我解壓縮的任何臨時文件,並手動將我的文件嵌入到上述建議的需要測試的文件中。謝謝! –

相關問題