2011-02-25 335 views
7

我想兩個如何做到在兩個(或多個)項目之間共享資源文件?C# - 項目間共享資源文件

所以,恢復,我有三期工程:

開發項目(CF.NET),其中包括資源文件(包括所有的定義)。

我有兩個其他的項目是空的,但連接到開發項目,每次只是一個不同的構建,所以當我修改開發項目時,所有三個項目也都進行了更新。 (修改csproj文件。)

問題是,那麼資源文件呢?當我嘗試從開發項目訪問時,我獲得所有資源,但是當我從其他兩個人嘗試時,它會拋出「MissingManifestResourceException」。

任何想法如何解決這個問題?

謝謝。


[編輯]

這裏是我做了什麼:

創建一個名爲 「RealProject」 項目,該項目包含了所有代碼(包括資源文件) 創建一個名爲項目「 LinkedProject「(其中不包含任何內容)(我刪除了所有文件並將其修改爲以下文件的csproj文件:

<ItemGroup> 
    <Compile Include="..\RealProject\**\*.cs" /> 
    </ItemGroup> 

所以在LinkedProject目錄我只已經:

  • [指南]斌
  • [指南] OBJ
  • [文件] LinkedProject.csproj

整個LinkedProject使用RealProject文件,它只是一個不同的配置構建(請參閱此處瞭解原因:C# - Code compiler for .NET & CF.NET

一旦進入該配置,我就無法訪問資源文件fr om RealProject ...

如果您需要屏幕或更詳細的解釋,只需詢問。


[編輯]

有了這個代碼,它的工作原理,資源管理器沒有裝上良好大會的名稱,但它應該存在一個更好的解決方案!

Assembly ass = Assembly.ReflectionOnlyLoadFrom(@"..\..\..\RealProject\bin\Debug\RealProject.dll"); 
ResourceManager manager = new ResourceManager("RealProject.Properties.Resources", ass); 

[解決方法]

檢查事項:

  • 的LinkedProject一樣 的命名空間中RealProject
  • 添加資源的鏈接
  • 清潔所有您的解決方案
  • 重建它

測試!

回答

7

嘗試將資源文件as a link添加到其他兩個項目,並確保項目文件中定義的名稱空間相同。

+0

首先嚐試一下,不起作用。 (我的另外兩個項目已經鏈接到第一個項目!) – 2011-02-25 15:47:40

+0

你說的是什麼意思,這些項目是鏈接的? – 2011-02-25 15:48:27

+0

請參閱我的編輯;) – 2011-02-25 16:00:02

1

嘗試將其他項目中的現有文件添加爲鏈接。

+0

首先嚐試一下,不起作用。 (我的另外兩個項目已經鏈接到第一個!) – 2011-02-25 15:47:12