在我的通用Windows应用程序中,我存储用户数据通过XmlSerializer将其对象转换为xml文件.
应用程序正在编译,构建和运行完美,直到某种方式(代码没有任何更改),发布版本开始给我这个错误:System.InvalidOperationException:无法生成临时类(result = 1).
如果我在调试时构建或运行应用程序,它可以完美地运行但是在发布时(.NET本机工具链处于活动状态)我得到了错误.
我已经将C:\ Windows\Temp文件夹的权限授予了所有人.即使我的母亲也可以访问它,但错误仍然存在.
如果它确实是XmlSerializer上的读/写问题,我想知道是否有任何方法可以更改UWP项目上的序列化程序临时文件夹.
这是我用来序列化对象的代码:
public static async Task<T> ReadObjectFromXmlFileAsync<T>(string filename)
{
// this reads XML content from a file ("filename") and returns an object from the XML
T objectFromXml = default(T);
var serializer = new XmlSerializer(typeof(T));
StorageFolder folder = ApplicationData.Current.LocalFolder;
StorageFile file = await folder.GetFileAsync(filename).AsTask().ConfigureAwait(false);
Stream stream = await file.OpenStreamForReadAsync().ConfigureAwait(false);
objectFromXml = (T)serializer.Deserialize(stream);
stream.Dispose();
return objectFromXml;
}
public static async Task SaveObjectToXml<T>(T objectToSave, string filename)
{
// stores an object …Run Code Online (Sandbox Code Playgroud) 我已经开发了使用EF7和SQLite的简单小型通用Windows应用程序。它编译和运行平稳的时候可以选择“编译.NET本地工具链”是未经检查。
如果我选中 “使用.NET本机工具链编译”选项,则会收到以下编译错误:
错误类型'System.MarshalByRefObject'未包括在编译中,但在类型'Microsoft.Data.Entity.Design.OperationExecutor'中被引用。可能缺少一个程序集。
在此之后,还有很多其他错误,但是我相信解决该错误也将解决其余问题。
有谁知道如何解决这个问题?